#ifndef _FIGURE_H_
#define _FIGURE_H_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Error.h"
#include "..\Container\SurfaceContainer.h"
#include "..\Container\TextureContainer.h"
#include "..\Texture\Texture.h"
#include "..\Color\Color.h"
#include "..\Logger\Logger.h"
#include "..\Exceptions\drawingExcep.h"
#include "..\Exceptions\notTextureExcep.h"

#include "..\Exceptions\msjExcep.h"

#include <string>

class Figure {

	public:
			
		virtual void draw()throw (DrawingExcep) =0 ;	//si falla en algun momento tira una expecion
		
		virtual std::string getCreationLog()=0;

		Figure();

		Figure(std::string id);

		virtual std::string getId() const;

		Color* getBorderColor()const;
		
		virtual ~Figure();
	
	protected:
		
		std::string id;

		Color *borderColor;

		Color *fillColor;

		Texture* texture;

};

#endif 